import java.util.Scanner;
import java.util.Stack;

// 题目描述：
// 为了提升数据传输的效率，会对传输的报文进行压缩处理。输入一个压缩后的报文，请返回
// 它解压后的原始报文。
// 压缩规则：n[str]，表示方括号内部的 str 正好重复 n 次。注意 n 为正整数（0 < n <=
// 100），str 只包含小写英文字母，不考虑异常情况。
// 输入：3[m2[c]]
// 输出：mccmccmcc
public class stackTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        Stack<Character> stack = new Stack<>();

        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            if (ch == ']') {
                StringBuilder temp = new StringBuilder();
                while (!stack.isEmpty() && '[' != stack.peek()) {
                    temp.insert(0, stack.pop());
                }

                stack.pop();

                StringBuilder nums = new StringBuilder();
                while (!stack.isEmpty() && (stack.peek() >= '0' && stack.peek() <= '9')) {
                    nums.append(stack.pop());
                }

                int times =  Integer.parseInt(nums.toString());
                for (int j = 0; j < times; j++) {
                    for (int k = 0; k < temp.length(); k++) {
                        stack.add(temp.charAt(k));
                    }
                }
            } else  {
                stack.add(ch);
            }
        }

        StringBuilder res = new StringBuilder();
        while (!stack.isEmpty()) {
            res.insert(0, stack.pop());
        }
        System.out.println(res);
    }
}
